!/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
!*  Copyleft (!c) 2004-2005 Div. Nucl. Med., Cyric, Tohoku Univ.    *
!*  Copyleft (!c) 2005-2011 Elseif Laboratory.                      *
!*  elseifkk@users.sf.net                                           *
!*                                                                  *
!*  All Rights Reversed.                                            *
!*                                                                  *
!*                                                                  *
!*  LICENSE AGREEMENT:                                              *
!*                                                                  *
!*  You agree that we don't agree to anything.                      *
!*                                                                  *
!*                                                                  *
!*  DISCLAIMER OF WARRANTIES:                                       *
!*                                                                  *
!*  This software is provided to you "AS IS," and the authors and   *
!*  contributors disclaim any warranty or liability obligations to  *
!*  you of any kind, implied or express, including but not limited  *
!*  to the warranties of merchantability, fitness for a particular  *
!*  purpose, and non-infringement.                                  *
!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
!
! memory I/O and data conversion utility.
! 
! TTD:
!   none.
! note:
!   1) most of them were written in asm as mutyA.asm.
!
module muty
implicit none
external cpmemd
external cpmemr
external cpmemw
external cpmemb
interface cparray
   subroutine cpmemra(dst,src,len)
     real*8,intent(in)::dst
     real*8,intent(in)::src
     integer*4,intent(in)::len
   end subroutine cpmemra
   subroutine cpmemdra(dst,src,len)
     real*4,intent(in)::dst
     real*4,intent(in)::src
     integer*4,intent(in)::len
   end subroutine cpmemdra
   subroutine cpmemda(dst,src,len)
     integer*4,intent(inout)::dst
     integer*4,intent(inout)::src
     integer*4,intent(inout)::len
   end subroutine cpmemda
   subroutine cpmemwa(dst,src,len)
     integer*2,intent(inout)::dst
     integer*2,intent(inout)::src
     integer*4,intent(inout)::len
   end subroutine cpmemwa
   subroutine cpmemba(dst,src,len)
     integer*1,intent(inout)::dst
     integer*1,intent(inout)::src
     integer*4,intent(inout)::len
   end subroutine cpmemba
end interface
interface zerocut
   subroutine zerocut_real4(n,a)
     integer*4,intent(in)::n
     real*4,intent(inout)::a
   end subroutine zerocut_real4
   subroutine zerocut_real8(n,a)
     integer*4,intent(in)::n
     real*8,intent(inout)::a
   end subroutine zerocut_real8
end interface
external int1_to_real8
external int2_to_real8
external int4_to_real8
external int1_to_real4
external int2_to_real4
external int4_to_real4
external real4_to_real8
external real8_to_real4
external real8_to_int1
external real8_to_int2
external real8_to_int4
external real4_to_int1
external real4_to_int2
external real4_to_int4
external get_minmax_int1
external get_minmax_int2
external get_minmax_int4
external get_minmax_real8
contains
end module
